package zengqiang.day03

/**
 * kotlin中字段是私有的，并且会自动生成get和set方法
 * 获取和设置都是自动调用对应的方法
 */
fun main(args: Array<String>) {
    var p=Person()
    println(p.name)
//    p.age=30  报错
    p.info=12
    println(p.info)//此时打印还是20，不符合条件没有设置成功
}
class Person{
    var name:String="张三"
    var age:Int=12
    private set//私有化age的set方法，使字段变成可读不可写的

    var info:Int=20
    set(value) {//加上过滤条件
        if (value > 30) {
//            this.age=value 此时this.age就相当于调用setAge，会形成递归调用
            //所以正确写法
            field=value
        }
    }
}